package com.yuetong.business.domain;

import java.math.BigDecimal;
import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yuetong.common.annotation.Excel;
import com.yuetong.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 维修记录，用于存储电梯的维护记录对象 yt_maintenance_record
 *
 * @author  卓晓君
 * @date 2025-02-04
 */
public class YtMaintenanceRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 记录ID */
    private Long recordId;

    /** 电梯ID */
    @Excel(name = "电梯ID")
    private Long elevatorId;

    /** 维护日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "维护日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date maintenanceDate;

    /** 维护类型 */
    @Excel(name = "维护类型")
    private String maintenanceType;

    /** 描述 */
    @Excel(name = "描述")
    private String description;

    /** 费用 */
    @Excel(name = "费用")
    private BigDecimal cost;

    /** 检查相册（JSON数组，存储图片路径） */
    @Excel(name = "检查相册", readConverterExp = "J=SON数组，存储图片路径")
    private String checkImages;

    /** 维修后相册（JSON数组，存储图片路径） */
    @Excel(name = "维修后相册", readConverterExp = "J=SON数组，存储图片路径")
    private String maintenanceImages;

    /** 更换部件相册（JSON数组，存储图片路径） */
    @Excel(name = "更换部件相册", readConverterExp = "J=SON数组，存储图片路径")
    private String replacedPartsImages;

    /** 排序字段 */
    @Excel(name = "排序字段")
    private Long sortOrder;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 指派维修任务，用于记录维修任务的指派和完成情况信息 */
    private List<YtAssignedTask> ytAssignedTaskList;

    public void setRecordId(Long recordId)
    {
        this.recordId = recordId;
    }

    public Long getRecordId()
    {
        return recordId;
    }
    public void setElevatorId(Long elevatorId)
    {
        this.elevatorId = elevatorId;
    }

    public Long getElevatorId()
    {
        return elevatorId;
    }
    public void setMaintenanceDate(Date maintenanceDate)
    {
        this.maintenanceDate = maintenanceDate;
    }

    public Date getMaintenanceDate()
    {
        return maintenanceDate;
    }
    public void setMaintenanceType(String maintenanceType)
    {
        this.maintenanceType = maintenanceType;
    }

    public String getMaintenanceType()
    {
        return maintenanceType;
    }
    public void setDescription(String description)
    {
        this.description = description;
    }

    public String getDescription()
    {
        return description;
    }
    public void setCost(BigDecimal cost)
    {
        this.cost = cost;
    }

    public BigDecimal getCost()
    {
        return cost;
    }
    public void setCheckImages(String checkImages)
    {
        this.checkImages = checkImages;
    }

    public String getCheckImages()
    {
        return checkImages;
    }
    public void setMaintenanceImages(String maintenanceImages)
    {
        this.maintenanceImages = maintenanceImages;
    }

    public String getMaintenanceImages()
    {
        return maintenanceImages;
    }
    public void setReplacedPartsImages(String replacedPartsImages)
    {
        this.replacedPartsImages = replacedPartsImages;
    }

    public String getReplacedPartsImages()
    {
        return replacedPartsImages;
    }
    public void setSortOrder(Long sortOrder)
    {
        this.sortOrder = sortOrder;
    }

    public Long getSortOrder()
    {
        return sortOrder;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    public List<YtAssignedTask> getYtAssignedTaskList()
    {
        return ytAssignedTaskList;
    }

    public void setYtAssignedTaskList(List<YtAssignedTask> ytAssignedTaskList)
    {
        this.ytAssignedTaskList = ytAssignedTaskList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("recordId", getRecordId())
                .append("elevatorId", getElevatorId())
                .append("maintenanceDate", getMaintenanceDate())
                .append("maintenanceType", getMaintenanceType())
                .append("description", getDescription())
                .append("cost", getCost())
                .append("checkImages", getCheckImages())
                .append("maintenanceImages", getMaintenanceImages())
                .append("replacedPartsImages", getReplacedPartsImages())
                .append("sortOrder", getSortOrder())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .append("delFlag", getDelFlag())
                .append("ytAssignedTaskList", getYtAssignedTaskList())
                .toString();
    }
}
